Evolutionary Compilation for Object Code Compatibility and Performance
نویسندگان
چکیده
SATHAYE, SUMEDH WASUDEO Evolutionary Compilation for Object Code Compatibility and Performance. (Under the direction of Prof. Thomas M. Conte) Optimized code for high-performance systems can be generated using (1) the knowledge of processor microarchitecture, and, (2) the use of representative program pro les for pro le-based optimization. Decisions made during compilation using such information may turn out to be erroneous when the code is run on a di erent machine model, or when program behavior changes due to a change in program inputs. The topic of this thesis, Evolutionary Compilation, is suggested as a solution. It helps the code adapt to such variations and thus preserves program performance. The evolutionary compiler (EC) runs as a part of the operating system. Program behavior is monitored using unobtrusive, fast, hardware-based pro ling techniques. A change in the program pro le or a di erence in the machine model assumed during compilation causes EC to be invoked on the object-code. One kind of variation in the machine model assumptions is the inter-generation compatibility problem in statically scheduled VLIW architectures. Dynamic Rescheduling (DR) is the technique used to reschedule code pages at rst-time page faults to overcome this problem. Any changes in code size while using such a scheme are avoided by using the TINKER encoding. Caching techniques to reduce the overhead incurred due to rescheduling are presented and studied. In order to adapt to variations in pro le information, recompilation requires more information than that available in the object code. Such information, e.g. live-outs across side-exits, is stored in the form of a non-loadable objectle annotation segment in the binary. The evolutionary compilation framework, the TINKER encoding, rescheduling algorithms and the properties of regions over which rescheduling is performed are discussed in detail. Evolutionary Compilation for Object Code Compatibility and Performance by Sumedh Wasudeo Sathaye A dissertation submitted to the Graduate Faculty of North Carolina State University in partial ful llment of the requirements for the Degree of Doctor of Philosophy Computer Engineering
منابع مشابه
Supporting Binary Compatibility with Static Compilation
There is an ongoing debate in the Java community on whether statically compiled implementations can meet the Java specification on dynamic features such as binary compatibility. Static compilation is sometimes desirable because it provides better code optimization, smaller memory footprint, more robustness, and better intellectual property protection. Unfortunately, none of the existing static ...
متن کاملCombining Processor Virtualization and Split Compilation for Heterogeneous Multicore Embedded Systems
Complex embedded systems have always been heterogeneous multicore systems. Because of the tight constraints on power, performance and cost, this situation is not likely to change any time soon. As a result, the software environments required to program those systems have become very complex too. We propose to apply instruction set virtualization and just-in-time compilation techniques to progra...
متن کاملThe effect of Code switching on the Acquisition of Object Relative Clauses by Iranian EFL Learners
This study attempted to investigate the impact of teacher’s code-switching on the acquisition of a problematic grammatical structure, namely, object relative clauses, by intermediate EFL learners. Moreover, a secondary objective of the study was to determine the EFL learners’ attitudes and opinions regarding the effectiveness of teacher’s code-switching in their learning of a specific aspect of...
متن کاملCombining Offline and Online Optimizations: Register Allocation and Method Inlining
Fast dynamic compilers trade code quality for short compilation time in order to balance application performance and startup time. This paper investigates the interplay of two of the most effective optimizations, register allocation and method inlining for such compilers. We present a bytecode representation which supports offline global register allocation, is suitable for fast code generation...
متن کاملJava Binary Compatibility Is Almost Correct Version 2
The Java language description is unusual in that it de nes the e ect of interleaving separate compilation and source code modi cations. In Java, certain source code modi cations, such as adding a method to a class, are de ned as binary compatible. The Java language description does not require the re-compilation of programs importing classes or interfaces which were modi ed in binary compatible...
متن کامل